package com.ops.service.ns.system.idao;

import java.util.Map;

import com.ops.schema.ns.system.OPSEmployer;
import com.ops.schema.ns.system.OPSUserAction;
import com.ops.service.ns.system.exception.OPSException;

public interface IOnlinePayrollSystemDAO {
	public Map login(final String userId,final String password, final String userSession)throws OPSException;
	public Map logout(final String userId, final String userSession)throws OPSException;
	public Map retrieveMenu(final String userId,final String roleId)throws OPSException;
	public Map recordAction(final String action, final String objectType, final String objectId, final String userSession, final String userId)throws OPSException;
	public Map updateEmployer(final OPSEmployer employer)throws OPSException;
	public Map searchParameters(final String name,final String type,final String activeFrom, final String activeTo)throws OPSException;
	public Map updateParameters(final String id,final String name,final String type,final String value,final String key,final String activeFrom, final String activeTo, final String userId, final String sessionId, final String operationFlag)throws OPSException;
	public Map searchMessages(final String name,final String lang,final String activeFrom, final String activeTo)throws OPSException;
	public Map updateMessages(final String id,final String name,final String lang,final String key,final String value,final String activeFrom, final String activeTo, final String userId, final String sessionId, final String operationFlag)throws OPSException;
	public Map searchLookups(final String name,final String type,final String activeFrom, final String activeTo)throws OPSException;
	public Map updateLookups(final String id,final String type,final String name,final String key,final String value,final String rule,final String activeFrom, final String activeTo, final String userId, final String sessionId, final String operationFlag)throws OPSException;
	public Map searchRules(final String name,final String type,final String group,final String datatype,final String activeFrom, final String activeTo)throws OPSException;
	public Map updateRules(final String id,final String ruleGroup,final String ruleName,final String description,final String ruleType,final String dataType,final String calcType,final String formula,final String parameters,final String filter,final String rate,final String level,final String valueFormat,final String required,final String activeFrom, final String activeTo, final String userId, final String sessionId, final String operationFlag)throws OPSException;
	public Map searchRuleBinds(final String ruleName,final String bindVariable,final String bindType,final String ruleLevel) throws OPSException;
	public Map searchRuleRates(final String ruleName,final String taxAuthority,final String taxType,final String rateType) throws OPSException;
	public Map updateRuleRates(final String rateId,final String ruleName,final String taxAuthority,final String taxType,final String rateType,final String parentRateId,final String userId, final String sessionId, final String operationFlag)throws OPSException;
	public Map searchUserSessions(final String userId,final String sessionStartTime,final String sessionEndTime) throws OPSException;
	public Map searchUsers(final String userName,final String status) throws OPSException;
	public Map updateUsers(final String id,final String name,final String status,final String password,final String userId, final String sessionId, final String operationFlag) throws OPSException;
	public Map updateRoles(final String uId, final String roleId,final String activeFrom,final String activeTo,final String userId, final String sessionId) throws OPSException;
	public Map searchUserActions(final String action,final String user,final String objectType,final String actionFromDate,final String actionToDate) throws OPSException;
	public Map searchTaxAuthorities(final String name,final String taxType,final String rateType, final String ruleGroup,final String activeFrom,final String activeTo) throws OPSException;
	public Map updateTaxAuthorities(final String id,final String name,final String taxType,final String rateType,final String address1,final String address2,final String city,final String state,final String country,final String zip, String ruleGroup,final String activeFrom,final String activeTo, final String userId, final String sessionId, final String operationFlag) throws OPSException;
	public Map retrieveRoles(final String name, final String activeFrom,final String activeTo) throws OPSException;
}
